home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
icon
/
newsgrp
/
group94a.txt
/
000057_icon-group-sender _Mon Feb 21 00:30:21 1994.msg
< prev
next >
Wrap
Internet Message Format
|
1994-08-19
|
1KB
Received: by cheltenham.cs.arizona.edu; Mon, 21 Feb 1994 09:17:08 MST
Return-Path: <jeffery@ringer.cs.utsa.edu>
Date: Mon, 21 Feb 94 00:30:21 CST
From: jeffery@ringer.cs.utsa.edu (Clinton L. Jeffery)
Message-Id: <9402210630.AA27481@ringer.cs.utsa.edu.sunset>
To: pab@cs.arizona.edu
Cc: icon-group@cs.arizona.edu
In-Reply-To: Peter A. Bigot's message of Sun, 20 Feb 1994 18:29:49 -0700 (MST) <9402210129.AA26505@omnia.cs.arizona.edu>
Subject: generating both [lr]values of records
Status: R
Errors-To: icon-group-errors@cs.arizona.edu
Peter Bigot writes about record lvalues:
# What I'd like:
# every !ar := (¤tgenelt)+1
# but for some reason that doesn't work....
Peter, !r does generate assignable references to record r's fields, but its
easy to inadvertently get yourself in trouble in the surrounding expression
(the usual mistake is to try to assign each field different results from a
generator; you need a co-expression for parallel evaluation of generators).
Anyhow, check out the following program, which assigns new values to a
record's fields (it writes out 1, 2, 3, and 4 on separate lines).
record r(a,b,c,d)
procedure main()
r1 := r()
every !r1 := foobar()
every write(!r1)
end
procedure foobar()
static i
initial i := 0
return i +:= 1
end
Clint Jeffery
cjeffery@cs.arizona.edu, jeffery@ringer.cs.utsa.edu
The University of Texas at San Antonio